package com.junyang.showdata.service;

import com.junyang.showdata.common.CityDataCountDemo;
import com.junyang.showdata.common.RiskDataByYearAndDay;
import com.junyang.showdata.common.RiskDemo;
import com.junyang.showdata.common.RiskLevelDemo;
import com.junyang.showdata.pojo.CityCountWithName;
import com.junyang.showdata.pojo.CityData;
import com.junyang.showdata.utils.Result;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

/**
 * @Author fusijia
 * @Date 2025/1/13 16:07
 * @notes
 */
public interface CityDataService {
    /**
    *@Author：fusijia
    *@Date：2025/1/13 16:07
    *@return：可展示的数据列表
    *@param: 城市id
    *
    */
    List<CityData>  getListById(int id);

    List<CityData> getCompleteList();

    List<CityData> getRiskByTime(Integer vTime);

    /**
     * @notes 根据风险等级查所有数据和完成数据
     *@Author：fusijia
     *@Date：2025/1/14 16:02
     *@return：返回该风险等级下的总数和完成数
     *@param: 风险等级
     */
    RiskDemo getRiskCount(int riskLevel);

    /**
     * @notes 获取各等级风险数据及总数
     *@Author：fusijia
     *@Date：2025/1/14 16:02
     *@return：RiskLevelDemo
     *@param:
     */
    RiskLevelDemo getRiskLevelCount();


    /**
     * @notes 获取年，月，周，日时间段内的数据数量
     *@Author：fusijia
     *@Date：2025/1/14 16:02
     *@return：数据数量RiskDataByYearAndDay
     *@param:
     */
    RiskDataByYearAndDay getByYearAndDay();

    /**
     *@notes:根据不同地区等级获取数据数量
     *@Author：fusijia
     *@Date：2025/1/15 10:02
     *@return：CityDataCountDemo 各等级地区数量数据多少
     *@param:
     */
    CityDataCountDemo getCityDataCountByLevel();

    /**
     *@notes:根据地区等级联合查询数据数量并排序和返回对地区名称列表
     *@Author：fusijia
     *@Date：2025/1/15 11:02
     *@return：CityDataCountDemo 各等级地区数量数据及名称列表
     * @param
     */
    List<CityCountWithName> getCityDataMapByLevel(int level);
}
